<template>
  <div class="my-counter">
    <button type="button" class="btn btn-light" @click="substract">-</button>
    <input type="number" class="form-control inp" v-model.number="count" @blur="inp" >
    <button type="button" class="btn btn-light" @click="add">+</button>
  </div>
</template>

<script>
export default {
  props: {
    value: Number
  },
  data() {
    return {
      count: this.value
    }
  },
  methods: {
    substract() {
      if (this.count === 0) return
      this.$emit('input', --this.count)
    },
    add() {
      this.$emit('input', ++this.count)
    },
    // 手动修改 input 框
    inp() {
      this.$emit('input', this.count)
    }
  }
}
</script>

<style lang="less" scoped>
.my-counter {
  display: flex;
  .inp {
    width: 45px;
    text-align: center;
    margin: 0 10px;
  }
  .btn, .inp{
    transform: scale(0.9);
  }
}
</style>